#include "queue.h"

// 创建队列
queue* create_empty_queue() {
    // 分配内存
    queue* q = (queue*)malloc(sizeof(queue));
    if (q == NULL) {
        printf("malloc failed\n");
    }
    // 初始化
    memset(q, 0, sizeof(queue));
    q->front = q->rear = 0;
    return q;

}

//判空

int is_empty_queue(queue *q) {
    return q->front == q->rear ? 1 : 0;
}

// 判满 
int is_full_queue(queue * q) {
    return q->front == (q->rear + 1) % N ? 1 : 0;
}

// 入队
void enqueue(queue *q, dataType x) {

    q->buf[q->rear] = x;
    // q->rear++;
    q->rear = (q->rear + 1) % N; 
}
// 出队
dataType dequeue(queue * q) {

    dataType x = q->buf[q->front];
    q->front = (q->front + 1) % N;
    return x;
}



